<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Source: container/Component.js</title>

    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">

    <h1 class="page-title">Source: container/Component.js</h1>

    



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>/**
 * Created with IntelliJ IDEA.
 * User: seeker910
 * Date: 13-10-24
 * Time: 下午10:26
 * To change this template use File | Settings | File Templates.
 */
/*
 define class Rsd.container.Component
 * */
Rsd.define('Rsd.container.Component', {
    extend: 'Rsd.common.ComponentX',
    requires: ['Rsd.common.Layouter'],
    xtype: 'container',
    bodyTagName: 'div',
    /*
    * 子控件布局方式：
    * vbox:一列多行布局
    * hbox:一行多列布局
    *
    * {
    * type: 'fit',
    * align:'left'//子控件文字对齐方式
    * }
    * */
    //layout: null,
    /*
    * {
    *    xtype:null,
    *    //xtype 控件初始化配置参数
    *    config:{
    *    },
    *    //承载header的html dom元素
    *    element: null,
    *    //header 的内容对象 ，可以是字符串 也可以是组件
    *    content:null, //{string|control|object}
    *    position: 'top',
    *    //文字对其方式
    *    align: 'center',
    *    space: 10,
    *    cls: null,
    *    style:{},
    *    visible:null
    * }
    * */
    // header: {},
    /*
    * 等于header.content
    * */
    //title: '',
    //鼠标按住头部可拖动
    //draggable:false,
    //是模式对话框
    isDialog:false,
    /*
    *{ 
        tagName:'',
        element:null,
        style:{},
        cls:''
    }
    * */
    //body: null,
    /*
    * @description 是否显示模态框 和 样式  
    * {
    * 背景样式
    * style:{}
    * 背景是否使用动画
    * animate:false
    * value:true
    * }
    * */
    //modular:{value:false,style:null}, 
    /*
    * 按钮延时显示的时间，单位：毫秒
    * */
    delayShow:50,
    headerTagName:'div',
    bodyTagName:'div',
    bodyCls: '',
    //items: [],
    /**
     * @description event:功能等于this.on('beforeshow',function(){}),支持IOC
     */
    beforeShow:null,
    /**
     * @description event:功能等于this.on('aftershow',function(){}),支持IOC
     */
    afterShow:null,
    /**
     * @description event:功能等于this.on('beforeclose',function(){}),支持IOC
     */
    beforeClose:null,
    /**
     * @description event:功能等于this.on('afterclose',function(){}),支持IOC
     */
    afterClose:null,
    /**
     * 
     */
    listeners:{},
    /*
     * @param {object} config
     */
    constructor: function Container(config) {

        config = config || {};
        this.apply(config);
    },
    /**
     * 
     */
    onBeforeInit:function onBeforeInit()
    {
        if(this.isDialog)
        {
            this.floating = true;
            this.modular = true;  
            this.header = Rsd.apply(this.header,{visible: true,space:0, height: 45, cls: 'x-f-header',"style":{color:'#ffffff',minHeight:45}});
            this.cls = this.cls ||'x-dialog';
            this.bodyCls = this.bodyCls||'x-dialog-body';
            this.listeners['dragstart']={
                    element:'dom',
                    fn:function (sender,event) {
                        event.dataTransfer.setData('Text',Rsd.toString({cmd:'move',pageX:event.pageX||event.clientX,pageY:event.pageY||event.clientY}));
                    }
                }; 
        }
        this.callParent();
    },
    /*
     * */
    initComponentEx: function initComponentEx() {

        //debugger;
        if(this.header.visible === false )
        {
            this.body.element = this.dom;
        }
        else
        {
            //xtype 处理
            if(!Rsd.isEmpty(this.header.xtype))
            {
                this.header.content = Rsd.widget(this.header.xtype,this.header.config||this.header);
                this.header.content.parent = this;
                this.header.element =  this.header.content.dom;
                //渲染到dom
                this.header.content.renderTo(this.dom); 
            }

            if(!this.header.element &amp;&amp; this.header.tagName)
            {
                this.header.element = document.createElement(this.header.tagName);
                this.header.element.style.fontSize = '120%';
                
                //content 处理
                if(Rsd.isEmpty(this.header.content) &amp;&amp; this.header.text)
                {
                    this.header.content = this.header.text;
                }
    
                if (Rsd.isString(this.header.content)) {
                    this.header.element.innerHTML = this.header.content;
                }
            }
        }
        
        //设置header 样式
        if(this.header.element)
        {
            this.header.element.id = this.id + '_header';
            this.elements['header'] =this.header.element;

            this.header.element.style.display = (this.header.visible==false ?  'none' :'inline-block' );
            this.header.element.classList.add('x-header');
            
            if (Rsd.isEmpty(this.header.xtype) &amp;&amp; this.header.cls ) {
                this.header.element.classList.add(this.header.cls);
            }
        }

       if(!this.body.element  &amp;&amp; this.body.tagName)
       {
            this.body.element = document.createElement(this.body.tagName); 
            
       }
        
       if(this.body.element)
       {
            this.body.element.id = this.id + '_body'; 
            this.elements['body'] = this.body.element;

            this.addCls('body','x-body');
            this.addCls('body',this.body.cls);

            this.body.element.style.textAlign = this.layout.align;

            if(this.header.visible !== false)
            {
                var _position = this.header.position||'top'; 
          
                //设置 body  宽度和高度
                switch (_position.toLowerCase()) {
                    case 'top':
                        {
                            //设置宽度
                            this.body.element.style.width = "100%";
    
                            //设置高度
                        } 
                        break;
                    case 'bottom': 
                        {
                            //设置宽度
                            this.body.element.style.width = "100%";
    
                            //设置高度
                        }
                        break;
                    case 'left':
                       {
                            //设置宽度
    
                            //设置高度
                            this.body.element.style.height = "100%"; 
                       }
                        break;
                    case 'right':
                       {
                            //设置宽度
    
                            //设置高度
                            this.body.element.style.height = "100%"; 
                       }
                    break;
                    default:
                        throw new Error('Property position of header or label is unknown value ['+this.headers.position+'].');
                        break;
                }
            }
            

            if (this.tip != undefined &amp;&amp; this.tip != null) {

                this.body.element.title = this.tip;
            }

            if (this.tabIndex != null) {
                this.body.element.tabIndex = this.tabIndex;
            }
            if(this.overflow)
            {
                this.body.element.style.overflow = this.overflow;
            } 
         
       }

       if(this.draggable)
        {  
            var me = this; 
            if(this.header.element)
            {
                this.header.element.onmouseover=function(e)
                {
                    me.dom.setAttribute('draggable',true);
                }
            }
            
            if(this.body.element)
            {
                this.body.element.onmouseover=function(e){
                
                    me.dom.setAttribute('draggable',false);
                }
            }     
                
       }
        
    },

    /*
    * */
    onAfterInit:function onAfterInit()
     {
         var me = this;
         this.callParent();
         /*
          * */
         var items =  me.items;
         if (Rsd.isArray(items) &amp;&amp; items.length > 0) {
             var item;
             for (var i = 0; i &lt;  items.length;i++) {
                 item = items[i];

                 if (!Rsd.isCreated(item)) {
                     var _xtype = item.xtype ||((item.items&amp;&amp;item.items.length>0)?'container':'component-x');//component-x 占位 ，仅一个div
                     if (me.dependencies[_xtype]) {
                         items[i] = Rsd.create(me.dependencies[_xtype],item);
                     } else {
                         items[i] = Rsd.widget(_xtype, item);
                     }

                     items[i].parent = me;
                 }

             }
         }

         //添加 close 按钮
         if(this.isDialog)
         {
            if(me.header.visible &amp;&amp; me.closeBtn)
            {
                var _close = Rsd.create('Rsd.control.Svg',{
                    label:{visible:true},
                    margin:'8 8 0 8',
                    height:30,
                    width:30,
                    size:'18 18',
                    cls:'x-f-close', 
                    style:{
                        "float":'right',
                        right:10,
                        color:'grey',
                        position:'absolute',
                        top:0,
                        right:0,
                        opacity:1
                    },
                    listeners:{
                        click:{
                            element:'ctrl',
                            fn:function (sender,event) {
                                me.close();
                             }
                        },
                        mouseover:{
                            element:'ctrl',
                            fn:function (sender,event) {
                                this.ctrl.element.style.color = 'red';
                                this.ctrl.element.style.cursor = 'pointer';
                             }
                        },
                        mouseout:{
                            element:'ctrl',
                            fn:function (sender,event) {
                                this.ctrl.element.style.color = 'grey';
                                this.ctrl.element.style.cursor = 'inherit';
                             }
                        }
        
                    }
                    
                });
        
                _close.loadData(
                    {
                        "viewBox":"0 0 1024 1024",
                        "path":"M591.781543 512.091831l417.01993-417.01993a54.522295 54.522295 0 0 0 0-76.777762l-2.304774-2.304774a54.522295 54.522295 0 0 0-76.777762 0l-417.01993 417.740172L95.390981 15.773293a54.522295 54.522295 0 0 0-76.777763 0L16.308445 18.078066a53.585981 53.585981 0 0 0 0 76.777763l417.019929 417.236002-417.019929 417.01993a54.522295 54.522295 0 0 0 0 76.777762l2.304773 2.304773a54.522295 54.522295 0 0 0 76.777763 0l417.019929-417.019929 417.01993 417.019929a54.522295 54.522295 0 0 0 76.777763 0l2.304773-2.304773a54.522295 54.522295 0 0 0 0-76.777762l-417.01993-417.01993z m0 0"
                    }
                );
        
                _close.renderTo(me.header.element);
                _close.doLayout();
            }
         }

         //注册事件
         if(this.beforeShow)
         {
             this.on('beforeshow',this.beforeShow);
         }
         if(this.afterShow)
         {
             this.on('aftershow',this.afterShow);
         }

         if(this.beforeClose)
         {
             this.on('beforeclose',this.beforeClose);
         }
         if(this.afterClose)
         {
             this.on('afterclose',this.afterClose);
         }

         
     },

    /**
     *
     * @description 执行控件布局，需主动调用。
     * */
    doLayout: function doLayout() {
        //布局自己 异步执行
        this.callParent();
        //监控 doLayout 执行次数
        //console.trace('in contianer doLayout',this.id,this.width);
        var me = this;
        //布局子对象
        setTimeout(function () {
            // 布局子控件
            me.layouter.layoutItems(me);

            for (var i = 0; i &lt; me.items.length; i++) {

                if (me.items[i] instanceof Rsd.common.ComponentX) {
                    //子控件 布局自己内容
                    me.items[i].doLayout();
                }
            }

        },50);
        return this;
    },

    /**
     *@description 自身render自后，render子对象
     * */
    onAfterRender: function onAfterRender() {

        if(this.header.element)
        {
            if(this.header.content instanceof Rsd.common.ComponentX)
            {
                //已在初始化 后渲染到dom
            }
            else
            {
                this.dom.appendChild(this.header.element); 
            }
            
        }

        if(this.body.element &amp;&amp; this.dom != this.body.element)
        {
            this.dom.appendChild(this.body.element); 
        }
       
        this.callParent();

        var me = this;
        var _item;
        for (var i = 0;i &lt; me.items.length;i++) {
            _item = me.items[i];
            if(! _item instanceof  Rsd.common.ComponentX)
            {
                console.error( me);
                console.error( _item);
                throw new Error('items['+i+'] is not instanceof Rsd.common.ComponentX in object [' + me.id + '].(Maybe using error xtype.)');
            }
            if (_item.isRendered()) {
                continue;
            }
            _item.renderTo.call(_item,me);


        }

        if(this.isDialog)
        {
            /*
            *
            * */
            Rsd.onDragOver(null,function (event) {
                    //console.log(event.dataTransfer.getData('Text'));
                }
            );
            /*
            * */
            Rsd.onDrop(null,function (event) {

                var _data = Rsd.toJson(event.dataTransfer.getData('Text'));
                    if(_data['cmd'] == 'move')
                    {

                        var _pX = event.pageX||event.clientX;
                        var _pY = event.pageY||event.clientY;

                        var _x = _data.pageX ;
                        var _y = _data.pageY ;

                        var tx = _pX  - _x + parseInt(me.dom.style.left);
                        var ty = _pY - _y + parseInt(me.dom.style.top);

                        me.dom.style.left = tx + "px";
                        me.dom.style.top =  ty + "px";

                        event.dataTransfer.clearData();
                    }
            }
            );
            /*
            *
            * */
            Rsd.onDragEnd(null,function (event) {


            });
        }
    },
    /**
     * 适时 删除该方法，由addItem代替
     * 追加 
     * @param {*} child 
     */
     add:function add(child)
     {
        this.insertItem(-1,child);
     },
     /**
      * 追加
      * @param {*} child 
      */
     addItem:function addItem(child)
     {
        this.insertItem(-1,child);
     },
    /**
     * 插入子控件 
     * @param {*} index 位置
     * @param {*} child 子控件
     * @returns 
     */
    insertItem: function insertItem(index,child) {

        var me = this;
        var _c = child;
        if (!_c.render || typeof (_c.render) != 'function') {
            _c = Rsd.widget(_c.xtype, _c);
        }
        _c.parent = me;

        if(index === undefined || index === null || index &lt; 0)
        {
            me.items.push(_c);
        }
        else
        {
            me.items.splice(index,0,_c);
        }
       
        if (me.isRendered()) {
            _c.renderTo.call(_c,me);
            //me.doLayout();//执行频次过高，添加控件后主动调用doLayout
        }

        return _c;
    },
    
    /**
     * @description 删除items数组中指定对象
     * */
    removeItem:function removeItem(item) {

        var index = -1;
        for (var i = 0; i &lt; this.items.length; i++) {
            if (this.items[i] == item) {
                index = i;
                break;
            }
        }

        if (index > -1) {
            this.items.splice(index, 1);
        }
    },

    /*
     * 移除所有dom对象
     * */
    removeAll:function removeAll() {

        var me = this;
        var _c;
        for (var i = 0 ;i&lt; me.items.length;i++) {
            _c = me.items[i];

            if(_c &amp;&amp; _c.removeAll)
            {
                _c.removeAll();
            }
            if(_c &amp;&amp; _c.remove)
            {
                _c.remove();
            }
            delete Rsd.objects[_c.id];
        }

        while(me.items.length>0)
        {
            me.items.splice(0, 1);
        }
        if(this.body.element)
        {
            this.body.element.innerHTML=null;
        }

    },

    /**
     * */
    onBeforeShow:function onBeforeShow()
    {
        this.events.fire(this, 'beforeshow', arguments);
    },

    /**
     * @description 以模态框的方式打开，参数格式：(parent), (positon), (parent,positon), (parent,positon,animate), (parent,positon,animate,speed) (parent,positon,animate,speed,callback) 
     * @description 指定x, y 值，可以页面展示效率
    *  @param parent 要展示的窗体 所在父窗体，多个dialog打开时，根据parent不同会设置多个蒙板
    *  @param position 位置：{top:0,left:0,right:null,bottom:null} 
    *  @param {string|Object}  animate 动画：fadeIn，slideDown,{top:30,left:100,backgroudColor:'red'}
    *  @param speed 打开速度
    *  @param callback 回调函数
    * */
    showDialog:function showDialog(parent,position,animate,speed,callback) {
        
        if (this.floating == false &amp;&amp; this.fixed == false)
        {
            console.log(this);
            throw new Error("Property 'floating' or 'fixed' must value  is true.");
        }
        if(this.modular.value == false)
        {
            throw new Error("Property 'modular' is not true.");
        }
        
        var me = this;
        //debugger;
        var _p =null, _position=null, _animate=null,_speed=null,_callback=null;
 
        if(arguments.length == 5)
        {
            _p = parent,_position = position,_animate = animate,_speed = speed,_callback = callback;
        }
        else
        {
            for(var i in arguments)
            {
                //console.log(arguments[i]);
                if(arguments[i]== null)
                {
                    continue;
                }
                if(arguments[i] instanceof  Rsd.common.ComponentX || arguments[i] instanceof HTMLElement)
                {
                    _p = arguments[i];
                    continue;
                }
                if((Rsd.isString(arguments[i]) || Rsd.isObject(arguments[i]))&amp;&amp; _position === null)
                {
                    _position = arguments[i];
                    continue;
                }
    
                if((Rsd.isFunction(arguments[i])||Rsd.isString(arguments[i]) &amp;&amp; _callback === null ))
                {
                    _callback = arguments[i];
                    continue;
                }
                
                if((Rsd.isObject(arguments[i]) ||Rsd.isString(arguments[i]) )&amp;&amp; _animate === null)
                {
                    _animate = arguments[i];
                    continue;
                }
                
                if(Rsd.isNumber(arguments[i]) &amp;&amp; _speed === null)
                {
                    _speed = arguments[i];
                    continue;
                }
            }
        }
        //console.log(arguments);
        _p = _p || document.body;

        var _p_dom = _p;
        if(_p_dom instanceof Rsd.container.Component)
        {
            _p_dom = _p.dom;
        }

        var _top = null,_left = null,_right = null,_bottom = null;
        _position  = _position||'center';
        if(Rsd.isString(_position))
        {
            switch(_position)
            {
                case "left":
                   _left = 0, _top = 0,_bottom =0;
                    break;
                case "right":
                    _right = 0,_top = 0,_bottom =0;
                    break;
                case "center":
                     //数字高度
                    //父控件大小
                    var _w = _p_dom.clientWidth > window.screen.availWidth ? window.screen.availWidth : _p_dom.clientWidth;
                    var _h = _p_dom.clientHeight > window.screen.availHeight ? window.screen.availHeight : _p_dom.clientHeight;
                    //尝试计算精确位置
                    if (me.width == '100%') 
                        {
                            _left = 0;
                        }
                        if(me.width == 'auto')
                        {
                            _left = '10%';
                        }
                        if (_left === null &amp;&amp; Rsd.isString(me.width) &amp;&amp; me.width.endWith('%')) 
                        {
                            _left = (100-me.width.substring(0,me.width.length-1))/2 + '%';
                        }
                        
                        if(me.height == '100%')
                        {
                            _top = 0;
                        }
                        if(me.height == 'auto')
                        {
                            _top = '10%';
                        }
                        if (_top === null &amp;&amp; Rsd.isString(me.height) &amp;&amp; me.height.endWith('%')) 
                        {
                            _top = (100-me.height.substring(0,me.height.length-1))/2 + '%';
                        }
                        if(_left===null &amp;&amp; Rsd.isNumber(me.width))
                        {
                            _left = (_w - me.width) / 2;
                        }
                        if(_top === null &amp;&amp; Rsd.isNumber(me.height))
                        {
                            _top = ((_h - me.height) * 3) / 10;
                        }  
    
                        //设置计算后的初始位置
                        if (_left != null &amp;&amp; _top != null) {  
                            me.setPosition(_left, _top,null,null); 
                        }
                        else
                        {
                            console.error('未能准确计算出位置信息:{x:' + _left +',y:' + _top + '},dialog{width:'+me.width+'height:'+me.height+'}');
                        }
                    break;
                case "default":
                default:
                    break;
            }
            
        }
       
        if(Rsd.isObject(_position))
        {
            _top = _position.top == undefined?null:_position.top;
            _left = _position.left == undefined?null:_position.left;
            _right = _position.right == undefined?null:_position.right;
            _bottom = _position._bottom == undefined?null:_position._bottom;
        }

       
        //设置指定的初始位置
        if (_left != null || _top != null || _right != null || _bottom != null) {  

            me.setPosition(_left, _top,_right,_bottom); 
        } 
        if (this.isRendered() == false) {

            this.renderTo(_p_dom);
        }

        //以模式框 形式展示
        {
            var _parent = _p_dom ;
            var _id = "__modular_bg__" + ((_parent&amp;&amp;_parent.id) || 'body');
            var _m_bg = document.getElementById(_id)

            if(Rsd.isEmpty(_m_bg)) {

                _m_bg = document.createElement("div");
                _m_bg.setAttribute("id", _id);
                _m_bg.style.background = "#000";
                _m_bg.style.width = "100%";
                _m_bg.style.height = "100%";
                _m_bg.style.position = "absolute";
                _m_bg.style.top = "0";
                _m_bg.style.left = "0";

                _m_bg.style.opacity = "0.3";
                _m_bg.style.filter = "Alpha(opacity=30)";

                _m_bg.opacity = Number(_m_bg.style.opacity);

                if(this.modular.animate)
                { 
                    var _o =  Number(_m_bg.style.opacity);
                    var _i = 1;
                    var _j = 1;
                    var _k = setInterval(function () {

                        _m_bg.style.opacity = _o + 0.01 * _j;
                        _i++;
                        _i = _i % 200;
                        if(_i>100)
                        {
                            _j = 200 - _i;
                        }else
                        {
                            _j =  _i;
                        }
                        if(_i==0)
                        {
                            clearInterval(_k);
                        }

                    },10);

                }
                _m_bg.intervalKey = _k;
            }
            else
            {
                clearInterval( _m_bg.intervalKey);
                _m_bg.style.opacity =  _m_bg.opacity;
            }
            var _style = this.modular.style || {};//console.log(_style);

            this.setElStyle(_m_bg,_style);
       
            _m_bg.count = _m_bg.count || 0;
            _m_bg.count++;

            this.on('beforeshow', function () {
                //debugger
                _m_bg.style.zIndex = Rsd.getZIndex(_m_bg.count);
                _parent.appendChild(_m_bg);
                _parent.style.overflow = "hidden";
                if(_p instanceof Rsd.container.Component)
                { 
                    _p.setElStyle('dom',{opacity:0.95});
                }
            });

            this.on('afterclose', function () {
                //debugger

                if (_m_bg) {
                    _m_bg.count--;
                    if (_m_bg.count > 0) {
                        _m_bg.style.zIndex = Rsd.getZIndex(_m_bg.count);
                        return;
                    }
                    else
                    {
                        try {

                            _parent.removeChild(_m_bg);

                        } catch (error) {

                        }
                    }
                }
                if(_p instanceof Rsd.container.Component)
                { 
                    _p.setElStyle('dom',{opacity:1});
                }
            });
 
        }

        this.dom.style.zIndex = Rsd.getZIndex(_m_bg.count+1);
        //阻止 Opacity 被设置为1，Opacity在Layout中会被设置为1
        this.__blockOpacity = true;
        //
        this.show(function () {   
            this.__blockOpacity = false;
            //回调 
            Rsd.callFunction(this,_callback);
        });
       
       
        
         //延时展示
         setTimeout(function(){
            //启动动画效果
            if(_animate)
            {
                _animate.opacity = 1;
                me.animate(_animate,_speed||80,function () {});
            }
            else
            {
                me.setElStyle('dom',{opacity:1});
            }
        },me.delayShow||500);

        //
         if (_position == "center" 
            &amp;&amp; (_left === null || _top === null || me.width=="auto" || me.height == "auto" ))
         {
            //console.log('进入窗体大小监控程序');
            //以实际高度 计算位置 
            var _timer = 10;//监控10次
            var _width = me.dom.clientWidth;
            var _height = me.dom.clientHeight;
            //位置参数 不全，监听控件自身尺寸变化 后调整位置
            //未指定显示位置 ，计算默认显示位置
            //显示后 set position  ，确保me.dom.clientWidth和me.dom.clientHeight值有效
            var __id =  setInterval(function(){
            
                _timer--;
                if(_timer == 0)
                {
                    clearInterval(__id); 
                }

                if(me.dom.clientWidth == _width 
                    &amp;&amp; me.dom.clientHeight == _height)
                {  
                    return;
                }

                _width = me.dom.clientWidth;
                _height = me.dom.clientHeight;
                 
                _w = _p_dom.clientWidth > window.screen.availWidth ? window.screen.availWidth : _p_dom.clientWidth;
                _h = _p_dom.clientHeight > window.screen.availHeight ? window.screen.availHeight : _p_dom.clientHeight;

                if (_left == null|| me.width=="auto") {

                    _left = (_w - me.dom.clientWidth ) / 2;
                }
                
                if (_top == null|| me.height == "auto") {
                    _top = ((_h - me.dom.clientHeight ) * 3) / 10;
                }

                if (_left &lt; 0) {
                    _left = 0;
                }
                if (_top &lt; 0) {
                    _top = 0;
                }
                //调试
                //console.log('in single dialog','obj:',me.width,me.height,'client:',_width,_height,'parent:',_w,_h,'position:',_left,_top);
                //再次调整位置
                //me.setPosition(_left, _top,null,null);
                //以动画的形式调整位置
                me.animate({left:_left,top:_top},200);

            },100);

         }

        return this;
    },

    
    /**
     *  @public
     *  @description 将控件以动画的形式将对象显示出来
     *  @param {string|Object} animate 动画：fadeIn,slideDown,{top,30,left:100,backgroudColor:'red'}
     *  @param speed 速度
     *  @callback speed 速度
     * */
    show:function show(animate,speed,callback) {

        this.markTime('showStartTime');

        this.onBeforeShow();

        var me = this;

        if (this.isRendered() == false) {
 
            this.renderTo(this.parent||document.body);

            setTimeout(function () {
                //Opacity在Layout中会被设置为1
                me.doLayout();
            },me.delayShow||100); 
        }

        this.dom.focus();

        this.callParentFn('show',arguments);
 
        this.onAfterShow();
        // 不处理回调 父类中已处理
        return this;
    },

    /**
    * */
    onAfterShow:function  onAfterShow()
    {
        this.events.fire(this, 'aftershow', arguments);
    },

    /**
     *@description 关闭窗口 设置this.closeCancel=true 可以阻止窗口关闭
     * */
    close: function close(animate,speed,style, callback) {

        //拦截 close 方法 前置动作 因为事件可以是多个注册事件，所以在触发时 没法有返回值
        this.events.fire(this, 'beforeclose', arguments);
        if(this.closeCancel === true)
        {
            return;
        }
        var _animate = null;
        var _speed = 0;
        var _callback = null;
        var _style=null;
        var _delay=null;
        //参数处理
        for(var i =0;i&lt; arguments.length;i++) {

            if(arguments[i]==null || arguments[i]==undefined)
            {
                continue;
            }
            if (Rsd.isFunction(arguments[i])) {
                _callback = arguments[i];
                continue;
            }
            if (Rsd.isObject(arguments[i])) {
                _style = arguments[i];
                continue;
            }
            if (_animate==null &amp;&amp; Rsd.isString(arguments[i])) {
                _animate = arguments[i];
                continue;
            }

            if (_speed == 0 &amp;&amp; Rsd.isNumber(arguments[i])) {
                _speed = arguments[i];
                continue;
            }
            if (_speed > 0 &amp;&amp; Rsd.isNumber(arguments[i])) {
                _delay = arguments[i];
                continue;
            }
        }

        var me = this;
        var _fn = function () {
            me.removeAll();
            me.remove();

            Rsd.callFunction(me,_callback);
        }

        var _param = _style||{};

        setTimeout(function () {

            if (Rsd.isEmpty(_param) &amp;&amp; _animate) {
                if (Rsd.isEmpty(_param) &amp;&amp; _animate) {

                    //_animate 动画参数映射 _param={};
                    switch (_animate.toLowerCase())
                    {
                        case 'fadeout':
                            _param={opacity:0};
                            _speed=_speed||150;

                            break;
                        default:
                            console.error( _animate + '动画参数映射，暂未开发。');
                            break;
                    }
                }
            }

            if (!Rsd.isEmpty(_param) || _speed > 0) {
                //params, speed,delay,fun, callback
                me.animate(_param, _speed, _delay || 0,'ease-out', _fn);

            }else
            {
                _fn();
            }

        },0);

        //拦截 close 方法 后置动作
        this.events.fire(this, 'afterclose', arguments);
    },

    /**
     * 
     * */
    getItemByXtype: function getItemByXtype(xtype) {

        function iterate(parent) {
            var _item = null;
            if (parent.items) {
                for (var i = 0; i &lt; parent.items.length;i++) {
                    if (parent.items[i].xtype == xtype) {
                        _item = parent.items[i];
                        break;
                    }
                    _item = iterate(parent.items[i]);
                    if (_item != null) {
                        break;
                    }
                }
            }
            return _item;
        }

        return iterate(this);
    },
    /**
     * @description 根据id 或 name 获取Item 
     * @param {*} key 
     * @returns 
     */
    get:function get(key)
    {
        var item = this.getItemById(key);
        if(item)
        {
            return item;
        }
        return this.getItemByName(key);
    },
    /**
     * 根据ID获取
     * */
    getItemById: function getItemById(id) {
       
        if(Rsd.isEmpty(id))
        {
            return null;
        }
        function iterate(parent) {
            var _item = null; 
            if (Rsd.isArray(parent.items)) {
                for (var i = 0;i &lt; parent.items.length;i++) { 
                    if (parent.items[i].id &amp;&amp; parent.items[i].id == id) {
                        _item = parent.items[i];
                        break;
                    }
                    _item = iterate(parent.items[i]);
                    if (_item != null) {
                        break;
                    }
                }
            }
            return _item;
        }

        return iterate(this);
    },

    /**
    * 根据Name获取
    * */
    getItemByName: function getItemByName(name) {

        if(Rsd.isEmpty(name))
        {
            return null;
        }
        function _fn(parent) {
            //debugger;
            var _item = null;
            if (Rsd.isArray(parent.items)) {


                for (var i = 0;i &lt; parent.items.length;i++) {

                    if (parent.items[i].name &amp;&amp; parent.items[i].name == name) {
                        _item = parent.items[i];
                        break;
                    }

                    _item = _fn(parent.items[i]);
                    if (_item != null) {
                        break;
                    }
                }
            }
            return _item;
        }

        return _fn(this);
    },

    /**
     * */
    setHeaderVisible: function setHeaderVisible(flag) {
        this.header.visible = flag;
        if( this.header.element)
        {
            this.header.element.style.display =  (this.header.visible==false ? 'none':'inline-block');
        }
    }


},function(type){
    {
        var _itemsGetter = function () {
            //debugger;

            var __name =  '__items';

            //console.log(this.$className);
            //console.log(this.hasOwnProperty(__name));

            if (!this.hasOwnProperty(__name)) {

                this[__name] = [];

                var  _tmp = this;

                while (_tmp.$className != 'Rsd.container.Component'
                &amp;&amp; !_tmp.__proto__.hasOwnProperty(__name))
                {
                    _tmp =  _tmp.__proto__;
                }
                if(_tmp.__proto__.hasOwnProperty(__name))
                {
                    if(Rsd.isArray(_tmp.__proto__[__name]))
                    {
                        for(var i in _tmp.__proto__[__name])
                        {
                            this[__name].push(Rsd.clone(_tmp.__proto__[__name][i]));
                        }
                    }
                    else
                    {
                        Rsd.error(_tmp.__proto__.$className + ' items is not array.');
                    }
                }
            }

            return this[__name];
        };
        var _itemsSetter = function (items) {
            if(!Rsd.isArray(items))
            {
                throw new Error('items is not array.');
            }
            for(var i = 0; i &lt; items.length;i++)
            {
                if(!Rsd.isObject(items[i]))
                {
                      throw new Error('items['+i+'] is not a object.');
                }
                this.items[i] = items[i];
            }

        }

        this.defineProperty(type,"items", _itemsGetter, _itemsSetter,true);

        var _headerGetter = function () {

            if (this.hasOwnProperty('__header') == false) {

                this.__header = Rsd.apply({
                    tagName:this.headerTagName, 
                    cls:this.headerCls,
                    style:this.headerStyle,
                    content: '',
                    xtype:null,
                    position: 'top',
                    align: 'center',
                    space: 10,
                    cls: null,
                    visible:null,
                    element: null},this.__proto__['__header']||{});


            }
            if(this.__header.visible === undefined || this.__header.visible === null)
            {
                this.__header.visible = (Rsd.isString(this.__header.content) &amp;&amp; this.__header.content.length > 0);
                this.__header.visible = this.__header.visible || (this.__header.content instanceof Rsd.common.ComponentX);
                this.__header.visible = this.__header.visible || (this.__header.xtype &amp;&amp; this.__header.xtype.length > 0);
            }

            return this.__header;
        };
        var _headerSetter = function (header) {

            if (this.hasOwnProperty('__header') == false) {
                this.__header = Rsd.apply({
                    tagName:this.headerTagName, 
                    cls:this.headerCls,
                    style:this.headerStyle,
                    content: '',
                    xtype:null,
                    position: 'top',
                    align: 'center',
                    space: 10,
                    cls: null,
                    visible:true,
                    element: null},this.__proto__['__header']||{});
            }
            if(Rsd.isObject(header))
            {
                Rsd.apply(this.__header,header); 
            }
            if(Rsd.isString(header))
            {
                this.__header.content = header;  
            }
            if(header===undefined || header === null || header === false)
            {
                this.__header.visible = false;
            } 
             
        };

        this.defineProperty(type,"header", _headerGetter, _headerSetter,true);
        
        var _bodyGetter = function () {
             
            if(this.hasOwnProperty('__body') == false)
            {
                this.__body = {
                    element:null,
                    tagName:this.bodyTagName,
                    cls:this.bodyCls,
                    style:this.bodyStyle
                }
            }
           
            return this.__body;
        };
        var _bodySetter = function (value) {

            if(Rsd.isEmpty(value))
            {
                return;
            }
            if(value instanceof Element)
            {
                this.body.element = value;
                return;
            }
            if(Rsd.isString(value))
            {
                this.body.tagName = value;
                return;
            }
            this.__body = value;
        }
       
        this.defineProperty(type,"body", _bodyGetter, _bodySetter,false);    
        
        var _dataGetter = function () {

            if (!this.hasOwnProperty('__data')) {
                this.__data = {};
            }
            return this.__data;
        };
        var _dataSetter = function (value) {

            this.__data = value;
            return;

        };
        this.defineProperty(type,"data", _dataGetter, _dataSetter,true);

        var _modularGetter = function () {

            if (Rsd.isNullOrUndefined( this.__modular)) {
                this.__modular = {value:false,animate:false,style:null};
            }
            return this.__modular;
        };
        var _modularSetter = function (value) {

            if (Rsd.isNullOrUndefined( this.__modular)) {
                this.__modular = {value:false,animate:false,style:null};
            }
            if(Rsd.isBoolean(value))
            {
                this.__modular.value = value;
            }
            if(Rsd.isObject(value))
            {
                Rsd.apply(this.__modular , value);
            }

            return ;

        };
        this.defineProperty(type,"modular", _modularGetter, _modularSetter,true);

        var _layoutGetter = function () {

            if (Rsd.isNullOrUndefined(this.__layout)) {
                this.__layout = {type: 'fit',align:'left'};
            }
            return this.__layout;
        };
        var _layoutSetter = function (value) {

            if(Rsd.isString(value))
            {
                this.layout.type = value;
            }
            if(Rsd.isObject(value))
            {
                Rsd.apply(this.layout , value);
            }

            return;

        };

        this.defineProperty(type,"layout", _layoutGetter, _layoutSetter,true);

        var _titleGetter = function () {

            return this.__title||'';
             
        };

        var _titleSetter = function (value) {
 
            this.__title = value;  
            if(Rsd.isEmpty(this.header.content) || Rsd.isString(this.header.content))
            {
                this.header.content = value; 
                if(this.header &amp;&amp; this.header.element)
                {
                    this.header.element.innerHTML = value; 
                }
            }
             
            return;

        };
        this.defineProperty(type,"title", _titleGetter, _titleSetter,true);

    }
});
</code></pre>
        </article>
    </section>




</div>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="global.html#Rsd">Rsd</a></li><li><a href="Rsd.common.html">common</a></li><li><a href="Rsd.container.html">container</a></li><li><a href="Rsd.control.html">control</a></li><li><a href="Rsd.data.html">data</a></li><li><a href="Rsd.template.html">template</a></li><li><a href="Rsd.widget.html">widget</a></li></ul><h3>Classes</h3><ul><li><a href="Redjs.html">Redjs</a></li><li><a href="Rsd.data.Ajax.html">Ajax</a></li><li><a href="Rsd.data.ModelSchema.html">ModelSchema</a></li><li><a href="Rsd.data.Service.html">Service</a></li><li><a href="window.Rsd.LogApi.html">LogApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#gbkToUTF8">gbkToUTF8</a></li><li><a href="global.html#mmToPx">mmToPx</a></li><li><a href="global.html#pxToMm">pxToMm</a></li><li><a href="global.html#unicodeToUTF8">unicodeToUTF8</a></li><li><a href="global.html#_btn_preview">_btn_preview</a></li><li><a href="global.html#_btn_save">_btn_save</a></li><li><a href="global.html#_imageItemDblClick">_imageItemDblClick</a></li><li><a href="global.html#accept">accept</a></li><li><a href="global.html#add">add</a></li><li><a href="global.html#addCls">addCls</a></li><li><a href="global.html#addControl">addControl</a></li><li><a href="global.html#addCookie">addCookie</a></li><li><a href="global.html#addItem">addItem</a></li><li><a href="global.html#addNode">addNode</a></li><li><a href="global.html#addObject">addObject</a></li><li><a href="global.html#addService">addService</a></li><li><a href="global.html#addTotalRow">addTotalRow</a></li><li><a href="global.html#addTreeNode">addTreeNode</a></li><li><a href="global.html#afterClose">afterClose</a></li><li><a href="global.html#afterShow">afterShow</a></li><li><a href="global.html#albumsItemDblClick">albumsItemDblClick</a></li><li><a href="global.html#albumsItemViewDetail">albumsItemViewDetail</a></li><li><a href="global.html#allFields">allFields</a></li><li><a href="global.html#alwaysWrap">alwaysWrap</a></li><li><a href="global.html#animate">animate</a></li><li><a href="global.html#appId">appId</a></li><li><a href="global.html#app_afterLayout">app_afterLayout</a></li><li><a href="global.html#apply">apply</a></li><li><a href="global.html#arrayConcat">arrayConcat</a></li><li><a href="global.html#authCode">authCode</a></li><li><a href="global.html#authorization">authorization</a></li><li><a href="global.html#autoCompleteHandler">autoCompleteHandler</a></li><li><a href="global.html#autoExpanded">autoExpanded</a></li><li><a href="global.html#autoLoad">autoLoad</a></li><li><a href="global.html#autoScrollIntoView">autoScrollIntoView</a></li><li><a href="global.html#backgroundImage">backgroundImage</a></li><li><a href="global.html#beforeClose">beforeClose</a></li><li><a href="global.html#beforeShow">beforeShow</a></li><li><a href="global.html#bgColors">bgColors</a></li><li><a href="global.html#bindEvent">bindEvent</a></li><li><a href="global.html#blankspan">blankspan</a></li><li><a href="global.html#block">block</a></li><li><a href="global.html#border">border</a></li><li><a href="global.html#btn_add">btn_add</a></li><li><a href="global.html#btn_add_albums">btn_add_albums</a></li><li><a href="global.html#btn_close">btn_close</a></li><li><a href="global.html#btn_new_image">btn_new_image</a></li><li><a href="global.html#btn_preview">btn_preview</a></li><li><a href="global.html#btn_publish">btn_publish</a></li><li><a href="global.html#btn_refesh_ds">btn_refesh_ds</a></li><li><a href="global.html#btn_refresh">btn_refresh</a></li><li><a href="global.html#btn_reset">btn_reset</a></li><li><a href="global.html#btn_save">btn_save</a></li><li><a href="global.html#btn_save_and_publish">btn_save_and_publish</a></li><li><a href="global.html#btn_share">btn_share</a></li><li><a href="global.html#btn_show_selector">btn_show_selector</a></li><li><a href="global.html#build">build</a></li><li><a href="global.html#buildColumns">buildColumns</a></li><li><a href="global.html#buildRows">buildRows</a></li><li><a href="global.html#buildTree">buildTree</a></li><li><a href="global.html#button">button</a></li><li><a href="global.html#callFunction">callFunction</a></li><li><a href="global.html#changeCls">changeCls</a></li><li><a href="global.html#checkRecord">checkRecord</a></li><li><a href="global.html#checkSessionServiceName">checkSessionServiceName</a></li><li><a href="global.html#checkToken">checkToken</a></li><li><a href="global.html#checkValue">checkValue</a></li><li><a href="global.html#checkbox">checkbox</a></li><li><a href="global.html#circle">circle</a></li><li><a href="global.html#clear">clear</a></li><li><a href="global.html#clearHotKey">clearHotKey</a></li><li><a href="global.html#clearLocal">clearLocal</a></li><li><a href="global.html#clearSelected">clearSelected</a></li><li><a href="global.html#clearSession">clearSession</a></li><li><a href="global.html#clone">clone</a></li><li><a href="global.html#close">close</a></li><li><a href="global.html#closeBtn">closeBtn</a></li><li><a href="global.html#closeDB">closeDB</a></li><li><a href="global.html#closeDropdownBox">closeDropdownBox</a></li><li><a href="global.html#closeLoading">closeLoading</a></li><li><a href="global.html#closeWaiting">closeWaiting</a></li><li><a href="global.html#codeMember">codeMember</a></li><li><a href="global.html#collapseAll">collapseAll</a></li><li><a href="global.html#colorMember">colorMember</a></li><li><a href="global.html#compile">compile</a></li><li><a href="global.html#compress">compress</a></li><li><a href="global.html#constructor">constructor</a></li><li><a href="global.html#contain">contain</a></li><li><a href="global.html#containCls">containCls</a></li><li><a href="global.html#copy">copy</a></li><li><a href="global.html#createInnerControl">createInnerControl</a></li><li><a href="global.html#crossDomain">crossDomain</a></li><li><a href="global.html#currentIndex">currentIndex</a></li><li><a href="global.html#data">data</a></li><li><a href="global.html#dataSource">dataSource</a></li><li><a href="global.html#dataStore">dataStore</a></li><li><a href="global.html#dataType">dataType</a></li><li><a href="global.html#daysStyle">daysStyle</a></li><li><a href="global.html#debug">debug</a></li><li><a href="global.html#decodeURI">decodeURI</a></li><li><a href="global.html#defineEnums">defineEnums</a></li><li><a href="global.html#defineRem">defineRem</a></li><li><a href="global.html#delay">delay</a></li><li><a href="global.html#deleteCookie">deleteCookie</a></li><li><a href="global.html#deleteDB">deleteDB</a></li><li><a href="global.html#deleteObject">deleteObject</a></li><li><a href="global.html#deleteRow">deleteRow</a></li><li><a href="global.html#deleteService">deleteService</a></li><li><a href="global.html#detectNavigator">detectNavigator</a></li><li><a href="global.html#detectOS">detectOS</a></li><li><a href="global.html#doLayout">doLayout</a></li><li><a href="global.html#doc">doc</a></li><li><a href="global.html#domTagName">domTagName</a></li><li><a href="global.html#download">download</a></li><li><a href="global.html#draggable">draggable</a></li><li><a href="global.html#drawCaption">drawCaption</a></li><li><a href="global.html#drawImage">drawImage</a></li><li><a href="global.html#drawList">drawList</a></li><li><a href="global.html#dsSchema">dsSchema</a></li><li><a href="global.html#dstype_change">dstype_change</a></li><li><a href="global.html#dynamic">dynamic</a></li><li><a href="global.html#edit">edit</a></li><li><a href="global.html#editRow">editRow</a></li><li><a href="global.html#empty">empty</a></li><li><a href="global.html#emptyImage">emptyImage</a></li><li><a href="global.html#encodeURI">encodeURI</a></li><li><a href="global.html#enumLabel">enumLabel</a></li><li><a href="global.html#enumText">enumText</a></li><li><a href="global.html#error">error</a></li><li><a href="global.html#exchange">exchange</a></li><li><a href="global.html#exeHotKeyFun">exeHotKeyFun</a></li><li><a href="global.html#expandAll">expandAll</a></li><li><a href="global.html#export">export</a></li><li><a href="global.html#fieldWidth">fieldWidth</a></li><li><a href="global.html#file">file</a></li><li><a href="global.html#fileDownloadServiceName">fileDownloadServiceName</a></li><li><a href="global.html#fileUploadServiceName">fileUploadServiceName</a></li><li><a href="global.html#findNode">findNode</a></li><li><a href="global.html#findObject">findObject</a></li><li><a href="global.html#findService">findService</a></li><li><a href="global.html#fire">fire</a></li><li><a href="global.html#fireResize">fireResize</a></li><li><a href="global.html#firstPage">firstPage</a></li><li><a href="global.html#fixed">fixed</a></li><li><a href="global.html#floating">floating</a></li><li><a href="global.html#formatApi">formatApi</a></li><li><a href="global.html#formatCurrency">formatCurrency</a></li><li><a href="global.html#formatCurrencyCN">formatCurrencyCN</a></li><li><a href="global.html#formatJson">formatJson</a></li><li><a href="global.html#formatLabels">formatLabels</a></li><li><a href="global.html#formatNumber">formatNumber</a></li><li><a href="global.html#formatString">formatString</a></li><li><a href="global.html#formatTimestamp">formatTimestamp</a></li><li><a href="global.html#from">from</a></li><li><a href="global.html#fullScreen">fullScreen</a></li><li><a href="global.html#funApplyByIOC">funApplyByIOC</a></li><li><a href="global.html#funBindByIOC">funBindByIOC</a></li><li><a href="global.html#get">get</a></li><li><a href="global.html#getApp">getApp</a></li><li><a href="global.html#getAppAuthorization">getAppAuthorization</a></li><li><a href="global.html#getAppConfig">getAppConfig</a></li><li><a href="global.html#getAppId">getAppId</a></li><li><a href="global.html#getAppToken">getAppToken</a></li><li><a href="global.html#getByteLength">getByteLength</a></li><li><a href="global.html#getCheckedNodes">getCheckedNodes</a></li><li><a href="global.html#getColumns">getColumns</a></li><li><a href="global.html#getControl">getControl</a></li><li><a href="global.html#getControlConfig">getControlConfig</a></li><li><a href="global.html#getCookie">getCookie</a></li><li><a href="global.html#getDPI">getDPI</a></li><li><a href="global.html#getData">getData</a></li><li><a href="global.html#getDocConfig">getDocConfig</a></li><li><a href="global.html#getDocument">getDocument</a></li><li><a href="global.html#getDom">getDom</a></li><li><a href="global.html#getElAttribute">getElAttribute</a></li><li><a href="global.html#getFieldValue">getFieldValue</a></li><li><a href="global.html#getFields">getFields</a></li><li><a href="global.html#getFile">getFile</a></li><li><a href="global.html#getFileName">getFileName</a></li><li><a href="global.html#getFormData">getFormData</a></li><li><a href="global.html#getFunctionName">getFunctionName</a></li><li><a href="global.html#getGlobalVariable">getGlobalVariable</a></li><li><a href="global.html#getHeight">getHeight</a></li><li><a href="global.html#getItem">getItem</a></li><li><a href="global.html#getItemById">getItemById</a></li><li><a href="global.html#getItemByName">getItemByName</a></li><li><a href="global.html#getItemByXtype">getItemByXtype</a></li><li><a href="global.html#getJsonSchema">getJsonSchema</a></li><li><a href="global.html#getKeyValue">getKeyValue</a></li><li><a href="global.html#getObjectByIndex">getObjectByIndex</a></li><li><a href="global.html#getObjectByKey">getObjectByKey</a></li><li><a href="global.html#getPaging">getPaging</a></li><li><a href="global.html#getPlugin">getPlugin</a></li><li><a href="global.html#getRecord">getRecord</a></li><li><a href="global.html#getRedjsHost">getRedjsHost</a></li><li><a href="global.html#getRedjsUrl">getRedjsUrl</a></li><li><a href="global.html#getRowData">getRowData</a></li><li><a href="global.html#getSchema">getSchema</a></li><li><a href="global.html#getSchemaList">getSchemaList</a></li><li><a href="global.html#getScrollHeight">getScrollHeight</a></li><li><a href="global.html#getSelectedNodes">getSelectedNodes</a></li><li><a href="global.html#getService">getService</a></li><li><a href="global.html#getStringWidth">getStringWidth</a></li><li><a href="global.html#getText">getText</a></li><li><a href="global.html#getTouched">getTouched</a></li><li><a href="global.html#getType">getType</a></li><li><a href="global.html#getUrlParam">getUrlParam</a></li><li><a href="global.html#getUserAgent">getUserAgent</a></li><li><a href="global.html#getValue">getValue</a></li><li><a href="global.html#getValueItem">getValueItem</a></li><li><a href="global.html#getView">getView</a></li><li><a href="global.html#getWhere">getWhere</a></li><li><a href="global.html#getWidth">getWidth</a></li><li><a href="global.html#getXhr">getXhr</a></li><li><a href="global.html#getZIndex">getZIndex</a></li><li><a href="global.html#globalVariables">globalVariables</a></li><li><a href="global.html#goTo">goTo</a></li><li><a href="global.html#gridColumns">gridColumns</a></li><li><a href="global.html#handleEvent">handleEvent</a></li><li><a href="global.html#handleUploadEvent">handleUploadEvent</a></li><li><a href="global.html#hasProperty">hasProperty</a></li><li><a href="global.html#hidden">hidden</a></li><li><a href="global.html#hide">hide</a></li><li><a href="global.html#httpGet">httpGet</a></li><li><a href="global.html#httpPost">httpPost</a></li><li><a href="global.html#httpRequest">httpRequest</a></li><li><a href="global.html#iframe_load">iframe_load</a></li><li><a href="global.html#imageDblClick">imageDblClick</a></li><li><a href="global.html#images">images</a></li><li><a href="global.html#indexEditServiceName">indexEditServiceName</a></li><li><a href="global.html#indexLoadServiceName">indexLoadServiceName</a></li><li><a href="global.html#info">info</a></li><li><a href="global.html#init">init</a></li><li><a href="global.html#initComponent">initComponent</a></li><li><a href="global.html#initComponentEx">initComponentEx</a></li><li><a href="global.html#initDropdownBox">initDropdownBox</a></li><li><a href="global.html#initImage">initImage</a></li><li><a href="global.html#insertItem">insertItem</a></li><li><a href="global.html#insertObject">insertObject</a></li><li><a href="global.html#insertService">insertService</a></li><li><a href="global.html#inset">inset</a></li><li><a href="global.html#isArray">isArray</a></li><li><a href="global.html#isBoolean">isBoolean</a></li><li><a href="global.html#isChrome">isChrome</a></li><li><a href="global.html#isCreated">isCreated</a></li><li><a href="global.html#isDate">isDate</a></li><li><a href="global.html#isDestroyed">isDestroyed</a></li><li><a href="global.html#isDisabled">isDisabled</a></li><li><a href="global.html#isEmpty">isEmpty</a></li><li><a href="global.html#isFunction">isFunction</a></li><li><a href="global.html#isHidden">isHidden</a></li><li><a href="global.html#isLoading">isLoading</a></li><li><a href="global.html#isMobile">isMobile</a></li><li><a href="global.html#isNaN">isNaN</a></li><li><a href="global.html#isNull">isNull</a></li><li><a href="global.html#isNullOrUndefined">isNullOrUndefined</a></li><li><a href="global.html#isNumber">isNumber</a></li><li><a href="global.html#isObject">isObject</a></li><li><a href="global.html#isReady">isReady</a></li><li><a href="global.html#isRendered">isRendered</a></li><li><a href="global.html#isString">isString</a></li><li><a href="global.html#isTrue">isTrue</a></li><li><a href="global.html#isType">isType</a></li><li><a href="global.html#isUndefined">isUndefined</a></li><li><a href="global.html#isView">isView</a></li><li><a href="global.html#isWeChat">isWeChat</a></li><li><a href="global.html#isWeChatApp">isWeChatApp</a></li><li><a href="global.html#itemCls">itemCls</a></li><li><a href="global.html#itemKeyMember">itemKeyMember</a></li><li><a href="global.html#itemLabelWidth">itemLabelWidth</a></li><li><a href="global.html#itemSelectedCls">itemSelectedCls</a></li><li><a href="global.html#itemXtype">itemXtype</a></li><li><a href="global.html#items">items</a></li><li><a href="global.html#jsonFormatter">jsonFormatter</a></li><li><a href="global.html#label">label</a></li><li><a href="global.html#lang">lang</a></li><li><a href="global.html#lastPage">lastPage</a></li><li><a href="global.html#layout">layout</a></li><li><a href="global.html#layoutAuto">layoutAuto</a></li><li><a href="global.html#layoutBorder">layoutBorder</a></li><li><a href="global.html#layoutContent">layoutContent</a></li><li><a href="global.html#layoutHbox">layoutHbox</a></li><li><a href="global.html#layoutItems">layoutItems</a></li><li><a href="global.html#layoutVbox">layoutVbox</a></li><li><a href="global.html#link">link</a></li><li><a href="global.html#listObject">listObject</a></li><li><a href="global.html#listObjects">listObjects</a></li><li><a href="global.html#listService">listService</a></li><li><a href="global.html#listeners">listeners</a></li><li><a href="global.html#load">load</a></li><li><a href="global.html#loadClass">loadClass</a></li><li><a href="global.html#loadCssFile">loadCssFile</a></li><li><a href="global.html#loadCtrlProperty">loadCtrlProperty</a></li><li><a href="global.html#loadData">loadData</a></li><li><a href="global.html#loadDocPages">loadDocPages</a></li><li><a href="global.html#loadFields">loadFields</a></li><li><a href="global.html#loadImage">loadImage</a></li><li><a href="global.html#loadIndex">loadIndex</a></li><li><a href="global.html#loadPlugin">loadPlugin</a></li><li><a href="global.html#loadScriptFile">loadScriptFile</a></li><li><a href="global.html#loadServiceApi">loadServiceApi</a></li><li><a href="global.html#loadServices">loadServices</a></li><li><a href="global.html#loadTemplateFile">loadTemplateFile</a></li><li><a href="global.html#mailTo">mailTo</a></li><li><a href="global.html#makeControl">makeControl</a></li><li><a href="global.html#makeObject">makeObject</a></li><li><a href="global.html#mappingUrl">mappingUrl</a></li><li><a href="global.html#maxLength">maxLength</a></li><li><a href="global.html#maxSize">maxSize</a></li><li><a href="global.html#md5">md5</a></li><li><a href="global.html#messageStyle">messageStyle</a></li><li><a href="global.html#metaInfo">metaInfo</a></li><li><a href="global.html#minSize">minSize</a></li><li><a href="global.html#model">model</a></li><li><a href="global.html#multiple">multiple</a></li><li><a href="global.html#name">name</a></li><li><a href="global.html#navigation">navigation</a></li><li><a href="global.html#newLine">newLine</a></li><li><a href="global.html#newRow">newRow</a></li><li><a href="global.html#next">next</a></li><li><a href="global.html#nextPage">nextPage</a></li><li><a href="global.html#nobr">nobr</a></li><li><a href="global.html#on">on</a></li><li><a href="global.html#onAfterInit">onAfterInit</a></li><li><a href="global.html#onAfterLayout">onAfterLayout</a></li><li><a href="global.html#onAfterRender">onAfterRender</a></li><li><a href="global.html#onAfterShow">onAfterShow</a></li><li><a href="global.html#onBeforeInit">onBeforeInit</a></li><li><a href="global.html#onBeforeLayout">onBeforeLayout</a></li><li><a href="global.html#onBeforeRender">onBeforeRender</a></li><li><a href="global.html#onBeforeShow">onBeforeShow</a></li><li><a href="global.html#onChanged">onChanged</a></li><li><a href="global.html#onPageSizeChanged">onPageSizeChanged</a></li><li><a href="global.html#on_checked">on_checked</a></li><li><a href="global.html#onchange">onchange</a></li><li><a href="global.html#ondelete">ondelete</a></li><li><a href="global.html#onload">onload</a></li><li><a href="global.html#onselect">onselect</a></li><li><a href="global.html#onview">onview</a></li><li><a href="global.html#openDB">openDB</a></li><li><a href="global.html#overflow">overflow</a></li><li><a href="global.html#pageIndexChanged">pageIndexChanged</a></li><li><a href="global.html#pageSizeList">pageSizeList</a></li><li><a href="global.html#page_type_changed">page_type_changed</a></li><li><a href="global.html#panelStyle">panelStyle</a></li><li><a href="global.html#patchButton">patchButton</a></li><li><a href="global.html#post">post</a></li><li><a href="global.html#postFileFromString">postFileFromString</a></li><li><a href="global.html#postFiles">postFiles</a></li><li><a href="global.html#pr_on_changed">pr_on_changed</a></li><li><a href="global.html#pr_rowdblclick">pr_rowdblclick</a></li><li><a href="global.html#previousPage">previousPage</a></li><li><a href="global.html#print">print</a></li><li><a href="global.html#printBorder">printBorder</a></li><li><a href="global.html#printCallStack">printCallStack</a></li><li><a href="global.html#proxy">proxy</a></li><li><a href="global.html#readFile">readFile</a></li><li><a href="global.html#readLocal">readLocal</a></li><li><a href="global.html#readOnly">readOnly</a></li><li><a href="global.html#readSession">readSession</a></li><li><a href="global.html#redirect">redirect</a></li><li><a href="global.html#refresh">refresh</a></li><li><a href="global.html#registerHotKey">registerHotKey</a></li><li><a href="global.html#remove">remove</a></li><li><a href="global.html#removeAll">removeAll</a></li><li><a href="global.html#removeCls">removeCls</a></li><li><a href="global.html#removeItem">removeItem</a></li><li><a href="global.html#removeLocal">removeLocal</a></li><li><a href="global.html#removeSession">removeSession</a></li><li><a href="global.html#renderTo">renderTo</a></li><li><a href="global.html#render_html">render_html</a></li><li><a href="global.html#requestService">requestService</a></li><li><a href="global.html#resetAjaxConfig">resetAjaxConfig</a></li><li><a href="global.html#response">response</a></li><li><a href="global.html#restart">restart</a></li><li><a href="global.html#rowclick">rowclick</a></li><li><a href="global.html#rowdblclick">rowdblclick</a></li><li><a href="global.html#rows">rows</a></li><li><a href="global.html#run">run</a></li><li><a href="global.html#saveAlbum">saveAlbum</a></li><li><a href="global.html#saveHandler">saveHandler</a></li><li><a href="global.html#scale">scale</a></li><li><a href="global.html#scrollCurrentIntoView">scrollCurrentIntoView</a></li><li><a href="global.html#scrollIntoView">scrollIntoView</a></li><li><a href="global.html#searchHandler">searchHandler</a></li><li><a href="global.html#select">select</a></li><li><a href="global.html#selectAll">selectAll</a></li><li><a href="global.html#selectColumn">selectColumn</a></li><li><a href="global.html#selectControl">selectControl</a></li><li><a href="global.html#selectNode">selectNode</a></li><li><a href="global.html#selectPage">selectPage</a></li><li><a href="global.html#selectRow">selectRow</a></li><li><a href="global.html#selected">selected</a></li><li><a href="global.html#selectedOnClick">selectedOnClick</a></li><li><a href="global.html#selectedOnDblClick">selectedOnDblClick</a></li><li><a href="global.html#selectorServices">selectorServices</a></li><li><a href="global.html#services">services</a></li><li><a href="global.html#setAppToken">setAppToken</a></li><li><a href="global.html#setControlProperty">setControlProperty</a></li><li><a href="global.html#setDisabled">setDisabled</a></li><li><a href="global.html#setDocumentIndex">setDocumentIndex</a></li><li><a href="global.html#setDocumentTitle">setDocumentTitle</a></li><li><a href="global.html#setDomToken">setDomToken</a></li><li><a href="global.html#setElAttribute">setElAttribute</a></li><li><a href="global.html#setElStyle">setElStyle</a></li><li><a href="global.html#setGlobalVariable">setGlobalVariable</a></li><li><a href="global.html#setHeaderVisible">setHeaderVisible</a></li><li><a href="global.html#setHref">setHref</a></li><li><a href="global.html#setNewButtons">setNewButtons</a></li><li><a href="global.html#setPageIndex">setPageIndex</a></li><li><a href="global.html#setPaging">setPaging</a></li><li><a href="global.html#setPosition">setPosition</a></li><li><a href="global.html#setSearchColumns">setSearchColumns</a></li><li><a href="global.html#setUrlParam">setUrlParam</a></li><li><a href="global.html#setValue">setValue</a></li><li><a href="global.html#set_data">set_data</a></li><li><a href="global.html#showAlbumsDetail">showAlbumsDetail</a></li><li><a href="global.html#showDialog">showDialog</a></li><li><a href="global.html#showDialogOnLeft">showDialogOnLeft</a></li><li><a href="global.html#showDialogOnRight">showDialogOnRight</a></li><li><a href="global.html#showDropdownBox">showDropdownBox</a></li><li><a href="global.html#showError">showError</a></li><li><a href="global.html#showIndex">showIndex</a></li><li><a href="global.html#showItem">showItem</a></li><li><a href="global.html#showLoading">showLoading</a></li><li><a href="global.html#showModalDialog">showModalDialog</a></li><li><a href="global.html#showModelView">showModelView</a></li><li><a href="global.html#showTip">showTip</a></li><li><a href="global.html#showWaiting">showWaiting</a></li><li><a href="global.html#size">size</a></li><li><a href="global.html#sleep">sleep</a></li><li><a href="global.html#sort">sort</a></li><li><a href="global.html#src">src</a></li><li><a href="global.html#start">start</a></li><li><a href="global.html#statechange">statechange</a></li><li><a href="global.html#stop">stop</a></li><li><a href="global.html#submit">submit</a></li><li><a href="global.html#tabIndex">tabIndex</a></li><li><a href="global.html#templates">templates</a></li><li><a href="global.html#testServerHost">testServerHost</a></li><li><a href="global.html#text">text</a></li><li><a href="global.html#textMember">textMember</a></li><li><a href="global.html#timeout">timeout</a></li><li><a href="global.html#timing">timing</a></li><li><a href="global.html#title">title</a></li><li><a href="global.html#title_format">title_format</a></li><li><a href="global.html#toFormDataString">toFormDataString</a></li><li><a href="global.html#toHtml">toHtml</a></li><li><a href="global.html#toJson">toJson</a></li><li><a href="global.html#toJsonString">toJsonString</a></li><li><a href="global.html#toMultipartFormData">toMultipartFormData</a></li><li><a href="global.html#toPxValue">toPxValue</a></li><li><a href="global.html#toString">toString</a></li><li><a href="global.html#toggle">toggle</a></li><li><a href="global.html#toggleCls">toggleCls</a></li><li><a href="global.html#token">token</a></li><li><a href="global.html#transform">transform</a></li><li><a href="global.html#tree_select_ctrl">tree_select_ctrl</a></li><li><a href="global.html#types">types</a></li><li><a href="global.html#unResize">unResize</a></li><li><a href="global.html#updateObject">updateObject</a></li><li><a href="global.html#updateRow">updateRow</a></li><li><a href="global.html#updateService">updateService</a></li><li><a href="global.html#upload">upload</a></li><li><a href="global.html#uploadComplete">uploadComplete</a></li><li><a href="global.html#uploadProgress">uploadProgress</a></li><li><a href="global.html#uploadStart">uploadStart</a></li><li><a href="global.html#valueMember">valueMember</a></li><li><a href="global.html#viewAllImages">viewAllImages</a></li><li><a href="global.html#viewHandler">viewHandler</a></li><li><a href="global.html#warn">warn</a></li><li><a href="global.html#writeLocal">writeLocal</a></li><li><a href="global.html#writeSession">writeSession</a></li><li><a href="global.html#zoomView">zoomView</a></li></ul>
</nav>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Wed May 10 2023 10:57:22 GMT+0800 (中国标准时间)
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
